package Lee_code;

import java.util.HashSet;

/**
 * @author blh
 * @date 2024年10月21日 9:38
 */
public class Lee_73_1021 {
    public void setZeroes(int[][] matrix) {
        int m = matrix.length;
        int n = matrix[0].length;
        HashSet<Integer> rows = new HashSet<>();
        HashSet<Integer> columns = new HashSet<>();
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (matrix[i][j] == 0) {
                    // 将第i行第j列置零
                    rows.add(i);
                    columns.add(j);
                }
            }
        }
        for (Integer i : rows) {
            setRowZero(matrix, i);
        }
        for (Integer j : columns) {
            setColumnZero(matrix, j);
        }
    }

    private void setColumnZero(int[][] matrix, int j) {
        for (int i = 0; i < matrix.length; i++) {
            matrix[i][j] = 0;
        }
    }

    private void setRowZero(int[][] matrix, int i) {
        for (int i1 = 0; i1 < matrix[0].length; i1++) {
            matrix[i][i1] = 0;
        }
    }
}
